import { createApp } from 'vue'
import App from './App.vue'
import './registerServiceWorker'
import router from './router'
import elementIcon from './plugins/icons.js'
createApp(App).use(router).use(elementIcon).mount('#app')


// 以下这段代码用于解决
// "ResizeObserver loop completed with undelivered notifications" 这个错误通常与浏览器中使用的 ResizeObserver API 相关。
// 这个错误表示 ResizeObserver 检测到了某个元素的尺寸变化，但是通知没有被正确传递给相关的监听器。
// 这个问题通常出现在监听器内部触发了元素的尺寸变化，然后又试图在回调函数中对这个元素进行尺寸的修改，导致无限循环。
// 要解决这个问题，你可以确保在 ResizeObserver 的回调函数中，不要直接修改触发回调的那个DOM元素的尺寸。
// 另外，你还可以使用 requestAnimationFrame 或 setTimeout 来对尺寸的修改进行延迟处理，以避免触发 ResizeObserver 的无限循环调用。
const debounce = (fn, delay) => {
    let timer
     return (...args) => {
       if (timer) {
         clearTimeout(timer)
       }
       timer = setTimeout(() => {
         fn(...args)
       }, delay)
     }
  }
    
  const _ResizeObserver = window.ResizeObserver;
  window.ResizeObserver = class ResizeObserver extends _ResizeObserver{
     constructor(callback) {
       callback = debounce(callback, 200);
       super(callback);
     }
  }
//////////////////////////////////////////////////////////////////////

